#pragma once

#include "fxcc/core/graph/common/ImageMipmap.h"
#include "fxcc/core/graph/common/Type.h"
#include "fxcc/core/Base.h"

namespace fxcc
{
	namespace graph
	{
		namespace common
		{

			struct FXCC_API Texture3DJack :public fxcc::Base
			{
				struct Desc
				{
					std::string m_ddsPath;

					enum Type
					{
						_DDS_
					} m_Type;

					fxcc::graph::common::SamplerType m_SamplerType = fxcc::graph::common::SamplerType::_sampler_2d_default_;

					bool SetDDS(const std::string& dds)
					{
						m_ddsPath = dds;
						m_Type = _DDS_;

						return fs::exists(dds);
					}
				} m_Desc;

				Texture3DJack() {}
				Texture3DJack(const Desc& desc) :m_Desc(desc)
				{

				}
				virtual void SetShader(int index) const { assert("failed set shader"); }
			};
		}
	}

}